#include <bits/stdc++.h>

using namespace std;
const int maxn=100010;
struct node
{
    double price;
    int product;
    vector<int> childs;
}nodess[maxn];
int node_num;
double p,r,total_sales=0;
void DFS(int index,double price)
{
    nodess[index].price=price;
    if (nodess[index].childs.size()==0)
    {
        total_sales+=nodess[index].product*nodess[index].price;
        return;
    }
    for (int i=0;i<nodess[index].childs.size() ;++i )
    {
        DFS(nodess[index].childs[i],nodess[index].price*(1+r));
    }
}
int main_1079()
{
    scanf("%d%lf%lf",&node_num,&p,&r);
    r/=100;
    int k,id;
    for (int i=0;i<node_num ;++i )
    {
        scanf("%d",&k);
        if (k==0)
        {
            scanf("%d",&nodess[i].product);
        }
        else
        {
            for (int j=0;j<k ;++j )
            {
                scanf("%d",&id);
                nodess[i].childs.push_back(id);
            }
        }
    }
    DFS(0,p);
    printf("%.1f",total_sales);
    return 0;
}
